package com.bitsemart.VisorVideojuego;

import android.animation.ObjectAnimator;
import android.animation.ValueAnimator;
import android.graphics.Bitmap;
import android.graphics.ColorMatrixColorFilter;
import android.graphics.drawable.BitmapDrawable;
import android.os.Bundle;
import android.provider.MediaStore;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.ImageView;
import android.widget.Toast;

import com.bitsemart.BDLocal;
import com.bitsemart.MainActivity;
import com.bitsemart.R;
import com.bitsemart.Videojuego;
import com.bitsemart.VisorVideojuego.VisorVideojuego;
import com.getbase.floatingactionbutton.FloatingActionButton;

import java.util.ArrayList;

/**
 * Created by Roberto on 19/04/2015.
 * <p/>
 * Se encarga de gestionar la pantalla que muestra los datos de un videojuego en modo cliente.
 */
public class VisorVideojuegoCliente extends VisorVideojuego {
    private TextView titulo;
    private TextView numDescargas;
    private TextView year;
    private TextView precio;
    private TextView genero;
    private TextView desarrollador;
    private TextView descripcion;
    private ImageView image;
    private BDLocal bdlocal;
    FloatingActionButton mFloatingActionButtonAdd;
    FloatingActionButton mFloatingActionButtonDel;
    int id;
//    private Toolbar toolbar;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //ACCEDER BDLOCAL
        bdlocal = new BDLocal(this);
        bdlocal.open();

        setContentView(R.layout.visor_videojuego_cliente);
//        toolbar = (Toolbar) findViewById(R.id.videogame_action_bar);
        titulo = (TextView) findViewById(R.id.titulo);
        precio = (TextView) findViewById(R.id.precio);
        genero = (TextView) findViewById(R.id.genero);
        year = (TextView) findViewById(R.id.year);
        numDescargas = (TextView) findViewById(R.id.numDescargas);
        desarrollador = (TextView) findViewById(R.id.desarrollador);
        descripcion = (TextView) findViewById(R.id.descripcion);
        image = (ImageView) findViewById(R.id.imagen);
        Button cerrar = (Button) findViewById(R.id.volver);
        cerrar.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {
                setResult(RESULT_OK);
                finish();
            }
        });

        //Cargar datos
        populateFields();

    }

    private void populateFields() {
        Bundle b = this.getIntent().getExtras();
        if (b != null) {
            titulo.setText((String) b.getSerializable("TITULO"));
            int prec = (int) b.getSerializable("PRECIO");
            if (prec > 0) {
                precio.setText(String.format("%.2f €", prec * 0.01));
            } else if (prec == 0) {
                precio.setText("GRATIS");
            } else {
                precio.setText("No disponible");
            }
            id = b.getInt("ID");
            genero.setText((String) b.getSerializable("GENERO"));
            desarrollador.setText((String) b.getSerializable("DESARROLLADOR"));
            descripcion.setText((String) b.getSerializable("DESCRIPCION"));
            numDescargas.setText("" + (int) b.getSerializable("NUM_DESCARGAS"));
            year.setText("" + (int) b.getSerializable("YEAR"));

            Bitmap imagen = (Bitmap) b.getParcelable("IMAGE");
            if (imagen!=null) {
                image.setImageBitmap(imagen);
            }

            mFloatingActionButtonAdd = (FloatingActionButton) findViewById(R.id.alCarro);
            mFloatingActionButtonDel = (FloatingActionButton) findViewById(R.id.quitarCarro);
            //Comprobamos si el juego esta anadido al carro
            if (bdlocal.esta(id)) {
                mFloatingActionButtonAdd.setVisibility(View.INVISIBLE);
            } else {
                mFloatingActionButtonDel.setVisibility(View.INVISIBLE);
            }
            mFloatingActionButtonAdd.setOnClickListener(new View.OnClickListener() {

                @Override
                public void onClick(View v) {
                    bdlocal.addVideojuego(id);
                    mFloatingActionButtonAdd.setVisibility(View.INVISIBLE);
                    mFloatingActionButtonDel.setVisibility(View.VISIBLE);
                    mostrarMensaje(getResources().getString(R.string.videogame_added));
                }
            });
            mFloatingActionButtonDel.setOnClickListener(new View.OnClickListener() {

                @Override
                public void onClick(View v) {
                    bdlocal.deleteVideojuego(id);
                    mFloatingActionButtonDel.setVisibility(View.INVISIBLE);
                    mFloatingActionButtonAdd.setVisibility(View.VISIBLE);
                    mostrarMensaje(getResources().getString(R.string.videogame_removed));
                }
            });
        }
    }

    private void mostrarMensaje(String msj) {
        Toast t = Toast.makeText(this, msj, Toast.LENGTH_SHORT);
        t.show();
    }
}
